#ifndef _BASE_CARD_MANAGER_H_
#define _BASE_CARD_MANAGER_H_

#include "Card.h"
#include <vector>

class CardManager
{
public:
	CardManager(int count);
	~CardManager();
	void Clean();
	void Shuffle();
	unsigned char Deal();

    static unsigned char RandCard(bool hasKing);

    enum
    {
        CARD_POINT_LIMIT = 0x43, // g_cards
    };

private:
	int m_seed;
	int m_left;
	int m_total;
	std::vector<unsigned char> m_cards;
};

extern const unsigned char g_cards[Card::E_Max_Count];

#endif
